In the cloud, computing resources often appear as a homogeneous pool. In reality, computing resources are a variety of different servers, computing, storage, networking and data center operations, all of which may be managed by the cloud provider. The cloud is typically device and location independent in that a user may not know the actual device or location where a component or resource physically resides. Components may access resources, such as processors or storage, without knowing the location of the resource. The provisioning of the computing resources, as well as load balancing among them, is the responsibility of the cloud service provider. This reliance on outsourced resources makes it difficult for companies deploying their applications to determine any issues with the performance of their applications under high traffic/data scenarios.
High traffic/data scenarios can be reproduced with hardware and simulations. Testing using hardware requires a large amount of hardware infrastructure and is expensive. Simulations do not provide an accurate account of the behavior of real users. Additionally, while current testing methods provide some level of information on the performance at the server level, they do not provide information on end-to-end performance at the user level. There is therefore a need for better performance testing solutions for cloud-based applications.
An additional problem is that, for cloud services for web applications, mobile applications, and API endpoints with global reach, it is very difficult to measure performance under high traffic coming from multiple concurrent geographic locations. In a real application traffic comes from users in different geographies, sometimes within the same country or from locations around the world. Accordingly, there also exists a need for better performance testing solutions for cloud-based services that encounter traffic from multiple concurrent geographic locations.
A further problem is that, as traffic moves increasingly towards mobile networks, it becomes more difficult to evaluate the performance of cloud services because of the variability of network conditions. Accordingly, there also exists a need for better performance testing solutions for cloud-based services such as web applications, mobile applications, and API endpoints under different network conditions.